import axios from "axios";
import router from "@/router";
//创建了一个新的axios对象
const request = axios.create({
    baseURL: 'http://localhost:9090',//后端接口地址 ip:port
    timeout: 30000 // 30000毫秒 = 30秒
})

//request拦截器
//可以在请求发送前对请求做一些处理
request.interceptors.request.use(
    config => {
        // 在发送请求之前做些什么
        // 例如，设置token
        config.headers['Content-Type'] = 'application/json;charset=utf-8';
        let user = JSON.parse(localStorage.getItem("base-user") || '{}')
        config.headers['token'] = user.token  //设置请求头
        return config;
    },
    error => {
        // 对请求错误做些什么
        console.error('请求错误', error); // for debug
        return Promise.reject(error);
    });

// 响应拦截器
// 在接口响应后统一做处理
request.interceptors.response.use(
    response => {
        let res = response.data;
        //兼容服务端返回的字符串数据
        if (typeof res === 'string') {
            res = res ? JSON.parse(res) : res
        }
        if(res.code === '401'){
            router.push("/login")
        }
        return res;
    },
    error => {
        // 对响应错误做点什么
        console.error('响应错误：', error); // for debug
        return Promise.reject(error);
    }
);

export default request;